Skip to content

Conversation

@Zalathar
Copy link
Member

@Zalathar Zalathar commented Nov 6, 2025

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

GuillaumeGomez and others added 21 commits November 3, 2025 17:24
Some sanitizers are part of a system's ABI, like the shadow call stack
on Aarch64 and RISC-V Fuchsia. Typically ABI options have other
spellings, but LLVM has, for historical reasons, marked this as a
sanitizer instead of an alternate ABI option. As a result, Fuchsia
targets may not be compiled against the correct ABI unless this option
is set. This hasn't caused correctness problems, since the backend
reserves the SCS register, and thus preserves its value. But this is an
issue for unwinding, as the SCS will not be an array of PCs describing
the call complete call chain, and will have gaps from callers that don't
use the correct ABI.

In the long term, I'd like to see all the sanitizer configs that all
frontends copy from clang moved into llvm's libFrontend, and exposed so
that frontend consumers can use a small set of simple APIs to use
sanitizers in a consistent way across the LLVM ecosystem, but that work
is not yet ready today.
This implements a new unstable compiler flag `-Zannotate-moves` that makes
move and copy operations visible in profilers by creating synthetic debug
information. This is achieved with zero runtime cost by manipulating debug
info scopes to make moves/copies appear as calls to `compiler_move<T, SIZE>`
and `compiler_copy<T, SIZE>` marker functions in profiling tools.

This allows developers to identify expensive move/copy operations in their
code using standard profiling tools, without requiring specialized tooling
or runtime instrumentation.

The implementation works at codegen time. When processing MIR operands
(`Operand::Move` and `Operand::Copy`), the codegen creates an `OperandRef`
with an optional `move_annotation` field containing an `Instance` of the
appropriate profiling marker function. When storing the operand,
`store_with_annotation()` wraps the store operation in a synthetic debug
scope that makes it appear inlined from the marker.

Two marker functions (`compiler_move` and `compiler_copy`) are defined
in `library/core/src/profiling.rs`. These are never actually called -
they exist solely as debug info anchors.

Operations are only annotated if the type:
   - Meets the size threshold (default: 65 bytes, configurable via
     `-Zannotate-moves=SIZE`)
   - Has a non-scalar backend representation (scalars use registers,
     not memcpy)

This has a very small size impact on object file size. With the default
limit it's well under 0.1%, and even with a very small limit of 8 bytes
it's still ~1.5%. This could be enabled by default.
While looking at the pretty-printers, I found a few minor oddities in
StdNonZeroNumberProvider.

First, gdb.Type.fields() already returns a sequence, so there's no
need to call list().

Second, it's more idiomatic for the (somewhat misnamed) to_string
method to simply return the underlying gdb.Value.  This also lets gdb
apply whatever formats were passed to `print`, as the new test shows.

Third, there's no need to use the field's name when looking up a field
in a value, the gdb.Field itself can be used.
gdb doesn't have a way to know when an object hasn't yet been
initialized, and in this case, if a pretty-printer returns an absurd
number of children, this can result in apparent hangs in some modes.
This came up specifically with DAP, see this bug report:

    https://sourceware.org/bugzilla/show_bug.cgi?id=33594

This patch (mostly) addresses this potential issue in the Rust
pretty-printers, by adding 'num_children' methods.  In particular a
method like this is added when the number of children is variable and
also relatively easy to compute.  (I.e., I didn't attempt the btree
printers.)

Supplying num_children is good for DAP regardless of the
initialization problem, because DAP requires a count of child objects
and this is more efficient than enumerating the children, which is
gdb's fallback approach.
The link had a stray character that generated an invalid link.
… r=Amanieu

Stabilize s390x `vector` target feature and `is_s390x_feature_detected!` macro

closes rust-lang#145649
closes rust-lang#135413
cc: rust-lang#130869
reference PR: rust-lang/reference#1972

# Stabilization report

## Summary

This PR stabilizes the following s390x target features:

- `vector`
- `vector-enhancements-1`
- `vector-enhancements-2`
- `vector-enhancements-3`
- `vector-packed-decimal`
- `vector-packed-decimal-enhancement`
- `vector-packed-decimal-enhancement-2`
- `vector-packed-decimal-enhancement-3`
- `nnp-assist`
- `miscellaneous-extensions-2`
- `miscellaneous-extensions-3`
- `miscellaneous-extensions-4`

Additionally, it stabilizes the `std::arch::is_s390x_feature_detected!` macro itself and stably accepts the target features listed above.

## Tests & ABI details

Only the `vector` target feature changes the ABI, much like e.g. `avx2` it will, depending on the ABI, pass vector types in vector registers. This behavior is tested extensively:

- [tests/assembly-llvm/s390x-vector-abi.rs](https://github.com/rust-lang/rust/blob/22a86f8280becb12c34ee3efd952baf5cf086fa0/tests/assembly-llvm/s390x-vector-abi.rs)
- [tests/codegen-llvm/s390x-simd.rs](https://github.com/rust-lang/rust/blob/22a86f8280becb12c34ee3efd952baf5cf086fa0/tests/assembly-llvm/s390x-vector-abi.rs)
- [tests/ui/abi/simd-abi-checks-s390x.rs ](https://github.com/rust-lang/rust/blob/22a86f8280becb12c34ee3efd952baf5cf086fa0/tests/ui/abi/simd-abi-checks-s390x.rs )

The remaining features don't influence the ABI, they only influence instruction selection. In stdarch we test that the expected instructions are in fact generated when the target feature is enabled.

## Implementation history

For `is_s390x_feature_detected!`:

- rust-lang/stdarch#1699
- rust-lang#138275
- rust-lang/stdarch#1720
- rust-lang/stdarch#1832

For `vector` and friends

- rust-lang#127506
- rust-lang#135630
- rust-lang#141250

## Unresolved questions

There is a fixme in [tests/ui/abi/simd-abi-checks-s390x.rs](https://github.com/rust-lang/rust/blob/22a86f8280becb12c34ee3efd952baf5cf086fa0/tests/ui/abi/simd-abi-checks-s390x.rs):

```
// FIXME: +soft-float itself doesn't set -vector
//`@[z13_soft_float]` compile-flags: --target s390x-unknown-linux-gnu -C target-cpu=z13 -C target-feature=-vector,+soft-float
//`@[z13_soft_float]` needs-llvm-components: systemz
```

I'm not sure whether that blocks stabilization?

---

The implementation first extracts the listed target features into their own `s390x_target_feature_vector` rust feature, and then stabilizes that. best reviewed commit-by-commit

r? `@Amanieu`
cc `@uweigand`  `@taiki-e`
…ochenkov

Add default sanitizers to TargetOptions

Some sanitizers are part of a system's ABI, like the shadow call stack on Aarch64 and RISC-V Fuchsia. Typically ABI options have other spellings, but LLVM has, for historical reasons, marked this as a sanitizer instead of an alternate ABI option. As a result, Fuchsia targets may not be compiled against the correct ABI unless this option is set. This hasn't caused correctness problems, since the backend reserves the SCS register, and thus preserves its value. But this is an issue for unwinding, as the SCS will not be an array of PCs describing the call complete call chain, and will have gaps from callers that don't use the correct ABI.

In the long term, I'd like to see all the sanitizer configs that all frontends copy from clang moved into llvm's libFrontend, and exposed so that frontend consumers can use a small set of simple APIs to use sanitizers in a consistent way across the LLVM ecosystem, but that work is not yet ready today.
…saethlin

Add -Zannotate-moves for profiler visibility of move/copy operations (codegen)

**Note:** this is an alternative implementation of rust-lang#147206; rather than being a MIR transform, it adds the annotations closer to codegen. It's functionally the same but the implementation is lower impact and it could be more correct.

---

This implements a new unstable compiler flag `-Zannotate-moves` that makes move and copy operations visible in profilers by creating synthetic debug information. This is achieved with zero runtime cost by manipulating debug info scopes to make moves/copies appear as calls to `compiler_move<T, SIZE>` and `compiler_copy<T, SIZE>` marker functions in profiling tools.

This allows developers to identify expensive move/copy operations in their code using standard profiling tools, without requiring specialized tooling or runtime instrumentation.

The implementation works at codegen time. When processing MIR operands (`Operand::Move` and `Operand::Copy`), the codegen creates an `OperandRef` with an optional `move_annotation` field containing an `Instance` of the appropriate profiling marker function. When storing the operand, `store_with_annotation()` wraps the store operation in a synthetic debug scope that makes it appear inlined from the marker.

Two marker functions (`compiler_move` and `compiler_copy`) are defined in `library/core/src/profiling.rs`. These are never actually called - they exist solely as debug info anchors.

Operations are only annotated if:
   - We're generating debug info and the feature is enabled.
   - Meets the size threshold (default: 65 bytes, configurable via `-Zannotate-moves=SIZE`), and is non-zero
   - Has a memory representation

This has a very small size impact on object file size. With the default limit it's well under 0.1%, and even with a very small limit of 8 bytes it's still ~1.5%. This could be enabled by default.
…ror-handling, r=lolbinarycat

[rustdoc] Gracefully handle error in case we cannot run the compiler in doctests

Fixes bug reported in [this comment](rust-lang#102981 (comment)).

r? `@lolbinarycat`
Minor fixes to StdNonZeroNumberProvider for gdb

While looking at the pretty-printers, I found a few minor oddities in StdNonZeroNumberProvider.

First, gdb.Type.fields() already returns a sequence, so there's no need to call list().

Second, it's more idiomatic for the (somewhat misnamed) to_string method to simply return the underlying gdb.Value.  This also lets gdb apply whatever formats were passed to `print`, as the new test shows.

Third, there's no need to use the field's name when looking up a field in a value, the gdb.Field itself can be used.
Add num_children method to some gdb pretty-printers

gdb doesn't have a way to know when an object hasn't yet been initialized, and in this case, if a pretty-printer returns an absurd number of children, this can result in apparent hangs in some modes. This came up specifically with DAP, see this bug report:

    https://sourceware.org/bugzilla/show_bug.cgi?id=33594

This patch (mostly) addresses this potential issue in the Rust pretty-printers, by adding 'num_children' methods.  In particular a method like this is added when the number of children is variable and also relatively easy to compute.  (I.e., I didn't attempt the btree printers.)

Supplying num_children is good for DAP regardless of the initialization problem, because DAP requires a count of child objects and this is more efficient than enumerating the children, which is gdb's fallback approach.
Fix broken qemu-cskyv2 link

The link had a stray character that generated an invalid link.
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Nov 6, 2025
@Zalathar
Copy link
Member Author

Zalathar commented Nov 6, 2025

Rollup of everything.

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Nov 6, 2025

📌 Commit 932e002 has been approved by Zalathar

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 6, 2025
@bors
Copy link
Collaborator

bors commented Nov 6, 2025

⌛ Testing commit 932e002 with merge 83a2c15...

bors added a commit that referenced this pull request Nov 6, 2025
Rollup of 7 pull requests

Successful merges:

 - #145656 (Stabilize s390x `vector` target feature and `is_s390x_feature_detected!` macro)
 - #147043 (Add default sanitizers to TargetOptions)
 - #147803 (Add -Zannotate-moves for profiler visibility of move/copy operations (codegen))
 - #147912 ([rustdoc] Gracefully handle error in case we cannot run the compiler in doctests)
 - #148540 (Minor fixes to StdNonZeroNumberProvider for gdb)
 - #148541 (Add num_children method to some gdb pretty-printers)
 - #148549 (Fix broken qemu-cskyv2 link)

Failed merges:

 - #147586 (std-detect: improve detect macro docs)

r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-20-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test [ui] tests/ui/zero-sized/zero-sized-btreemap-insert.rs ... ok

failures:

---- [ui] tests/ui/asm/s390x/bad-reg.rs#s390x stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x/bad-reg.s390x.stderr`
diff of stderr:

- warning: unstable feature specified for `-Ctarget-feature`: `vector`
-    |
-    = note: this feature is not stably supported; its behavior can change in the future
---
The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args asm/s390x/bad-reg.rs`

error in revision `s390x`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/asm/s390x/bad-reg.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "s390x" "--check-cfg" "cfg(test,FALSE,s390x,s390x_vector,s390x_vector_stable)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "s390x-unknown-linux-gnu" "-C" "target-feature=-vector" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error: invalid register `r11`: The frame pointer cannot be used as an operand for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:33:18
   |
LL |         asm!("", out("r11") _);
   |                  ^^^^^^^^^^^^

error: invalid register `r15`: The stack pointer cannot be used as an operand for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:35:18
   |
LL |         asm!("", out("r15") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c0`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:37:18
   |
LL |         asm!("", out("c0") _);
   |                  ^^^^^^^^^^^

error: invalid register `c1`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:39:18
   |
LL |         asm!("", out("c1") _);
   |                  ^^^^^^^^^^^

error: invalid register `c2`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:41:18
   |
LL |         asm!("", out("c2") _);
   |                  ^^^^^^^^^^^

error: invalid register `c3`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:43:18
   |
LL |         asm!("", out("c3") _);
   |                  ^^^^^^^^^^^

error: invalid register `c4`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:45:18
   |
LL |         asm!("", out("c4") _);
   |                  ^^^^^^^^^^^

error: invalid register `c5`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:47:18
   |
LL |         asm!("", out("c5") _);
   |                  ^^^^^^^^^^^

error: invalid register `c6`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:49:18
   |
LL |         asm!("", out("c6") _);
   |                  ^^^^^^^^^^^

error: invalid register `c7`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:51:18
   |
LL |         asm!("", out("c7") _);
   |                  ^^^^^^^^^^^

error: invalid register `c8`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:53:18
   |
LL |         asm!("", out("c8") _);
   |                  ^^^^^^^^^^^

error: invalid register `c9`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:55:18
   |
LL |         asm!("", out("c9") _);
   |                  ^^^^^^^^^^^

error: invalid register `c10`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:57:18
   |
LL |         asm!("", out("c10") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c11`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:59:18
   |
LL |         asm!("", out("c11") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c12`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:61:18
   |
LL |         asm!("", out("c12") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c13`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:63:18
   |
LL |         asm!("", out("c13") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c14`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:65:18
   |
LL |         asm!("", out("c14") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c15`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:67:18
   |
LL |         asm!("", out("c15") _);
   |                  ^^^^^^^^^^^^

error: invalid register `a0`: a0 and a1 are reserved for system use and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:69:18
   |
LL |         asm!("", out("a0") _);
   |                  ^^^^^^^^^^^

error: invalid register `a1`: a0 and a1 are reserved for system use and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:71:18
   |
LL |         asm!("", out("a1") _);
   |                  ^^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:122:18
   |
LL |         asm!("", in("a2") x);
   |                  ^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:125:18
   |
LL |         asm!("", out("a2") x);
   |                  ^^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:128:26
   |
LL |         asm!("/* {} */", in(areg) x);
   |                          ^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:131:26
   |
LL |         asm!("/* {} */", out(areg) _);
   |                          ^^^^^^^^^^^

error: register `f0` conflicts with register `v0`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:136:31
   |
LL |         asm!("", out("v0") _, out("f0") _);
   |                  -----------  ^^^^^^^^^^^ register `f0`
   |                  |
   |                  register `v0`

error: register `f1` conflicts with register `v1`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:138:31
   |
LL |         asm!("", out("v1") _, out("f1") _);
   |                  -----------  ^^^^^^^^^^^ register `f1`
   |                  |
   |                  register `v1`

error: register `f2` conflicts with register `v2`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:140:31
   |
LL |         asm!("", out("v2") _, out("f2") _);
   |                  -----------  ^^^^^^^^^^^ register `f2`
   |                  |
   |                  register `v2`

error: register `f3` conflicts with register `v3`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:142:31
   |
LL |         asm!("", out("v3") _, out("f3") _);
   |                  -----------  ^^^^^^^^^^^ register `f3`
   |                  |
   |                  register `v3`

error: register `f4` conflicts with register `v4`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:144:31
   |
LL |         asm!("", out("v4") _, out("f4") _);
   |                  -----------  ^^^^^^^^^^^ register `f4`
   |                  |
   |                  register `v4`

error: register `f5` conflicts with register `v5`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:146:31
   |
LL |         asm!("", out("v5") _, out("f5") _);
   |                  -----------  ^^^^^^^^^^^ register `f5`
   |                  |
   |                  register `v5`

error: register `f6` conflicts with register `v6`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:148:31
   |
LL |         asm!("", out("v6") _, out("f6") _);
   |                  -----------  ^^^^^^^^^^^ register `f6`
   |                  |
   |                  register `v6`

error: register `f7` conflicts with register `v7`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:150:31
   |
LL |         asm!("", out("v7") _, out("f7") _);
   |                  -----------  ^^^^^^^^^^^ register `f7`
   |                  |
   |                  register `v7`

error: register `f8` conflicts with register `v8`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:152:31
   |
LL |         asm!("", out("v8") _, out("f8") _);
   |                  -----------  ^^^^^^^^^^^ register `f8`
   |                  |
   |                  register `v8`

error: register `f9` conflicts with register `v9`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:154:31
   |
LL |         asm!("", out("v9") _, out("f9") _);
   |                  -----------  ^^^^^^^^^^^ register `f9`
   |                  |
   |                  register `v9`

error: register `f10` conflicts with register `v10`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:156:32
   |
LL |         asm!("", out("v10") _, out("f10") _);
   |                  ------------  ^^^^^^^^^^^^ register `f10`
   |                  |
   |                  register `v10`

error: register `f11` conflicts with register `v11`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:158:32
   |
LL |         asm!("", out("v11") _, out("f11") _);
   |                  ------------  ^^^^^^^^^^^^ register `f11`
   |                  |
   |                  register `v11`

error: register `f12` conflicts with register `v12`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:160:32
   |
LL |         asm!("", out("v12") _, out("f12") _);
   |                  ------------  ^^^^^^^^^^^^ register `f12`
   |                  |
   |                  register `v12`

error: register `f13` conflicts with register `v13`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:162:32
   |
LL |         asm!("", out("v13") _, out("f13") _);
   |                  ------------  ^^^^^^^^^^^^ register `f13`
   |                  |
   |                  register `v13`

error: register `f14` conflicts with register `v14`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:164:32
   |
LL |         asm!("", out("v14") _, out("f14") _);
   |                  ------------  ^^^^^^^^^^^^ register `f14`
   |                  |
   |                  register `v14`

error: register `f15` conflicts with register `v15`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:166:32
   |
LL |         asm!("", out("v15") _, out("f15") _);
   |                  ------------  ^^^^^^^^^^^^ register `f15`
   |                  |
   |                  register `v15`

error: invalid register `f16`: unknown register
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:169:32
   |
LL |         asm!("", out("v16") _, out("f16") _);
   |                                ^^^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:76:18
   |
LL |         asm!("", in("v0") v); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:80:18
   |
LL |         asm!("", out("v0") v); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:84:18
   |
LL |         asm!("", in("v0") x); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:88:18
   |
LL |         asm!("", out("v0") x); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:92:18
   |
LL |         asm!("", in("v0") b);
   |                  ^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:97:18
   |
LL |         asm!("", out("v0") b);
   |                  ^^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:102:26
   |
LL |         asm!("/* {} */", in(vreg) v); // requires vector & asm_experimental_reg
   |                          ^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:106:26
   |
LL |         asm!("/* {} */", in(vreg) x); // requires vector & asm_experimental_reg
   |                          ^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:110:26
   |
LL |         asm!("/* {} */", in(vreg) b);
   |                          ^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:115:26
   |
LL |         asm!("/* {} */", out(vreg) _); // requires vector & asm_experimental_reg
   |                          ^^^^^^^^^^^

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:122:27
   |
LL |         asm!("", in("a2") x);
   |                           ^
   |
   = note: register class `areg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:125:28
   |
LL |         asm!("", out("a2") x);
   |                            ^
   |
   = note: register class `areg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:128:35
   |
LL |         asm!("/* {} */", in(areg) x);
   |                                   ^
   |
   = note: register class `areg` supports these types: 

error: aborting due to 54 previous errors
------------------------------------------

---- [ui] tests/ui/asm/s390x/bad-reg.rs#s390x stdout end ----
---- [ui] tests/ui/asm/s390x/bad-reg.rs#s390x_vector stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x_vector/bad-reg.s390x_vector.stderr`
diff of stderr:

- warning: unstable feature specified for `-Ctarget-feature`: `vector`
-    |
-    = note: this feature is not stably supported; its behavior can change in the future
---
The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args asm/s390x/bad-reg.rs`

error in revision `s390x_vector`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/asm/s390x/bad-reg.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "s390x_vector" "--check-cfg" "cfg(test,FALSE,s390x,s390x_vector,s390x_vector_stable)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x_vector" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "s390x-unknown-linux-gnu" "-C" "target-feature=+vector" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x_vector/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error: invalid register `r11`: The frame pointer cannot be used as an operand for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:33:18
   |
LL |         asm!("", out("r11") _);
   |                  ^^^^^^^^^^^^

error: invalid register `r15`: The stack pointer cannot be used as an operand for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:35:18
   |
LL |         asm!("", out("r15") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c0`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:37:18
   |
LL |         asm!("", out("c0") _);
   |                  ^^^^^^^^^^^

error: invalid register `c1`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:39:18
   |
LL |         asm!("", out("c1") _);
   |                  ^^^^^^^^^^^

error: invalid register `c2`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:41:18
   |
LL |         asm!("", out("c2") _);
   |                  ^^^^^^^^^^^

error: invalid register `c3`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:43:18
   |
LL |         asm!("", out("c3") _);
   |                  ^^^^^^^^^^^

error: invalid register `c4`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:45:18
   |
LL |         asm!("", out("c4") _);
   |                  ^^^^^^^^^^^

error: invalid register `c5`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:47:18
   |
LL |         asm!("", out("c5") _);
   |                  ^^^^^^^^^^^

error: invalid register `c6`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:49:18
   |
LL |         asm!("", out("c6") _);
   |                  ^^^^^^^^^^^

error: invalid register `c7`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:51:18
   |
LL |         asm!("", out("c7") _);
   |                  ^^^^^^^^^^^

error: invalid register `c8`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:53:18
   |
LL |         asm!("", out("c8") _);
   |                  ^^^^^^^^^^^

error: invalid register `c9`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:55:18
   |
LL |         asm!("", out("c9") _);
   |                  ^^^^^^^^^^^

error: invalid register `c10`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:57:18
   |
LL |         asm!("", out("c10") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c11`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:59:18
   |
LL |         asm!("", out("c11") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c12`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:61:18
   |
LL |         asm!("", out("c12") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c13`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:63:18
   |
LL |         asm!("", out("c13") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c14`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:65:18
   |
LL |         asm!("", out("c14") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c15`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:67:18
   |
LL |         asm!("", out("c15") _);
   |                  ^^^^^^^^^^^^

error: invalid register `a0`: a0 and a1 are reserved for system use and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:69:18
   |
LL |         asm!("", out("a0") _);
   |                  ^^^^^^^^^^^

error: invalid register `a1`: a0 and a1 are reserved for system use and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:71:18
   |
LL |         asm!("", out("a1") _);
   |                  ^^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:122:18
   |
LL |         asm!("", in("a2") x);
   |                  ^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:125:18
   |
LL |         asm!("", out("a2") x);
   |                  ^^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:128:26
   |
LL |         asm!("/* {} */", in(areg) x);
   |                          ^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:131:26
   |
LL |         asm!("/* {} */", out(areg) _);
   |                          ^^^^^^^^^^^

error: register `f0` conflicts with register `v0`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:136:31
   |
LL |         asm!("", out("v0") _, out("f0") _);
   |                  -----------  ^^^^^^^^^^^ register `f0`
   |                  |
   |                  register `v0`

error: register `f1` conflicts with register `v1`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:138:31
   |
LL |         asm!("", out("v1") _, out("f1") _);
   |                  -----------  ^^^^^^^^^^^ register `f1`
   |                  |
   |                  register `v1`

error: register `f2` conflicts with register `v2`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:140:31
   |
LL |         asm!("", out("v2") _, out("f2") _);
   |                  -----------  ^^^^^^^^^^^ register `f2`
   |                  |
   |                  register `v2`

error: register `f3` conflicts with register `v3`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:142:31
   |
LL |         asm!("", out("v3") _, out("f3") _);
   |                  -----------  ^^^^^^^^^^^ register `f3`
   |                  |
   |                  register `v3`

error: register `f4` conflicts with register `v4`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:144:31
   |
LL |         asm!("", out("v4") _, out("f4") _);
   |                  -----------  ^^^^^^^^^^^ register `f4`
   |                  |
   |                  register `v4`

error: register `f5` conflicts with register `v5`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:146:31
   |
LL |         asm!("", out("v5") _, out("f5") _);
   |                  -----------  ^^^^^^^^^^^ register `f5`
   |                  |
   |                  register `v5`

error: register `f6` conflicts with register `v6`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:148:31
   |
LL |         asm!("", out("v6") _, out("f6") _);
   |                  -----------  ^^^^^^^^^^^ register `f6`
   |                  |
   |                  register `v6`

error: register `f7` conflicts with register `v7`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:150:31
   |
LL |         asm!("", out("v7") _, out("f7") _);
   |                  -----------  ^^^^^^^^^^^ register `f7`
   |                  |
   |                  register `v7`

error: register `f8` conflicts with register `v8`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:152:31
   |
LL |         asm!("", out("v8") _, out("f8") _);
   |                  -----------  ^^^^^^^^^^^ register `f8`
   |                  |
   |                  register `v8`

error: register `f9` conflicts with register `v9`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:154:31
   |
LL |         asm!("", out("v9") _, out("f9") _);
   |                  -----------  ^^^^^^^^^^^ register `f9`
   |                  |
   |                  register `v9`

error: register `f10` conflicts with register `v10`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:156:32
   |
LL |         asm!("", out("v10") _, out("f10") _);
   |                  ------------  ^^^^^^^^^^^^ register `f10`
   |                  |
   |                  register `v10`

error: register `f11` conflicts with register `v11`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:158:32
   |
LL |         asm!("", out("v11") _, out("f11") _);
   |                  ------------  ^^^^^^^^^^^^ register `f11`
   |                  |
   |                  register `v11`

error: register `f12` conflicts with register `v12`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:160:32
   |
LL |         asm!("", out("v12") _, out("f12") _);
   |                  ------------  ^^^^^^^^^^^^ register `f12`
   |                  |
   |                  register `v12`

error: register `f13` conflicts with register `v13`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:162:32
   |
LL |         asm!("", out("v13") _, out("f13") _);
   |                  ------------  ^^^^^^^^^^^^ register `f13`
   |                  |
   |                  register `v13`

error: register `f14` conflicts with register `v14`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:164:32
   |
LL |         asm!("", out("v14") _, out("f14") _);
   |                  ------------  ^^^^^^^^^^^^ register `f14`
   |                  |
   |                  register `v14`

error: register `f15` conflicts with register `v15`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:166:32
   |
LL |         asm!("", out("v15") _, out("f15") _);
   |                  ------------  ^^^^^^^^^^^^ register `f15`
   |                  |
   |                  register `v15`

error: invalid register `f16`: unknown register
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:169:32
   |
LL |         asm!("", out("v16") _, out("f16") _);
   |                                ^^^^^^^^^^^^

error: type `u8` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:92:27
   |
LL |         asm!("", in("v0") b);
   |                           ^
   |
   = note: register class `vreg` supports these types: i32, f32, i64, f64, i128, f128, i8x16, i16x8, i32x4, i64x2, f32x4, f64x2

error: type `u8` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:97:28
   |
LL |         asm!("", out("v0") b);
   |                            ^
   |
   = note: register class `vreg` supports these types: i32, f32, i64, f64, i128, f128, i8x16, i16x8, i32x4, i64x2, f32x4, f64x2

error: type `u8` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:110:35
   |
LL |         asm!("/* {} */", in(vreg) b);
   |                                   ^
   |
   = note: register class `vreg` supports these types: i32, f32, i64, f64, i128, f128, i8x16, i16x8, i32x4, i64x2, f32x4, f64x2

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:122:27
   |
LL |         asm!("", in("a2") x);
   |                           ^
   |
   = note: register class `areg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:125:28
   |
LL |         asm!("", out("a2") x);
   |                            ^
   |
   = note: register class `areg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:128:35
   |
LL |         asm!("/* {} */", in(areg) x);
   |                                   ^
   |
   = note: register class `areg` supports these types: 

error: aborting due to 47 previous errors
------------------------------------------

---- [ui] tests/ui/asm/s390x/bad-reg.rs#s390x_vector stdout end ----
---- [ui] tests/ui/asm/s390x/bad-reg.rs#s390x_vector_stable stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x_vector_stable/bad-reg.s390x_vector_stable.stderr`
diff of stderr:

- warning: unstable feature specified for `-Ctarget-feature`: `vector`
-    |
-    = note: this feature is not stably supported; its behavior can change in the future
---
The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args asm/s390x/bad-reg.rs`

error in revision `s390x_vector_stable`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/asm/s390x/bad-reg.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "s390x_vector_stable" "--check-cfg" "cfg(test,FALSE,s390x,s390x_vector,s390x_vector_stable)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x_vector_stable" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "s390x-unknown-linux-gnu" "-C" "target-feature=+vector" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x_vector_stable/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error: invalid register `r11`: The frame pointer cannot be used as an operand for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:33:18
   |
LL |         asm!("", out("r11") _);
   |                  ^^^^^^^^^^^^

error: invalid register `r15`: The stack pointer cannot be used as an operand for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:35:18
   |
LL |         asm!("", out("r15") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c0`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:37:18
   |
LL |         asm!("", out("c0") _);
   |                  ^^^^^^^^^^^

error: invalid register `c1`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:39:18
   |
LL |         asm!("", out("c1") _);
   |                  ^^^^^^^^^^^

error: invalid register `c2`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:41:18
   |
LL |         asm!("", out("c2") _);
   |                  ^^^^^^^^^^^

error: invalid register `c3`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:43:18
   |
LL |         asm!("", out("c3") _);
   |                  ^^^^^^^^^^^

error: invalid register `c4`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:45:18
   |
LL |         asm!("", out("c4") _);
   |                  ^^^^^^^^^^^

error: invalid register `c5`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:47:18
   |
LL |         asm!("", out("c5") _);
   |                  ^^^^^^^^^^^

error: invalid register `c6`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:49:18
   |
LL |         asm!("", out("c6") _);
   |                  ^^^^^^^^^^^

error: invalid register `c7`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:51:18
   |
LL |         asm!("", out("c7") _);
   |                  ^^^^^^^^^^^

error: invalid register `c8`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:53:18
   |
LL |         asm!("", out("c8") _);
   |                  ^^^^^^^^^^^

error: invalid register `c9`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:55:18
   |
LL |         asm!("", out("c9") _);
   |                  ^^^^^^^^^^^

error: invalid register `c10`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:57:18
   |
LL |         asm!("", out("c10") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c11`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:59:18
   |
LL |         asm!("", out("c11") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c12`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:61:18
   |
LL |         asm!("", out("c12") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c13`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:63:18
   |
LL |         asm!("", out("c13") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c14`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:65:18
   |
LL |         asm!("", out("c14") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c15`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:67:18
   |
LL |         asm!("", out("c15") _);
   |                  ^^^^^^^^^^^^

error: invalid register `a0`: a0 and a1 are reserved for system use and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:69:18
   |
LL |         asm!("", out("a0") _);
   |                  ^^^^^^^^^^^

error: invalid register `a1`: a0 and a1 are reserved for system use and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:71:18
   |
LL |         asm!("", out("a1") _);
   |                  ^^^^^^^^^^^

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:76:18
   |
LL |         asm!("", in("v0") v); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:80:18
   |
LL |         asm!("", out("v0") v); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:84:18
   |
LL |         asm!("", in("v0") x); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:88:18
   |
LL |         asm!("", out("v0") x); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:92:18
   |
LL |         asm!("", in("v0") b);
   |                  ^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:97:18
   |
LL |         asm!("", out("v0") b);
   |                  ^^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:102:26
   |
LL |         asm!("/* {} */", in(vreg) v); // requires vector & asm_experimental_reg
   |                          ^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:106:26
   |
LL |         asm!("/* {} */", in(vreg) x); // requires vector & asm_experimental_reg
   |                          ^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:110:26
   |
LL |         asm!("/* {} */", in(vreg) b);
   |                          ^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:115:26
   |
LL |         asm!("/* {} */", out(vreg) _); // requires vector & asm_experimental_reg
   |                          ^^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:122:18
   |
LL |         asm!("", in("a2") x);
   |                  ^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:125:18
   |
LL |         asm!("", out("a2") x);
   |                  ^^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:128:26
   |
LL |         asm!("/* {} */", in(areg) x);
   |                          ^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:131:26
   |
LL |         asm!("/* {} */", out(areg) _);
   |                          ^^^^^^^^^^^

error: register `f0` conflicts with register `v0`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:136:31
   |
LL |         asm!("", out("v0") _, out("f0") _);
   |                  -----------  ^^^^^^^^^^^ register `f0`
   |                  |
   |                  register `v0`

error: register `f1` conflicts with register `v1`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:138:31
   |
LL |         asm!("", out("v1") _, out("f1") _);
   |                  -----------  ^^^^^^^^^^^ register `f1`
   |                  |
   |                  register `v1`

error: register `f2` conflicts with register `v2`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:140:31
   |
LL |         asm!("", out("v2") _, out("f2") _);
   |                  -----------  ^^^^^^^^^^^ register `f2`
   |                  |
   |                  register `v2`

error: register `f3` conflicts with register `v3`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:142:31
   |
LL |         asm!("", out("v3") _, out("f3") _);
   |                  -----------  ^^^^^^^^^^^ register `f3`
   |                  |
   |                  register `v3`

error: register `f4` conflicts with register `v4`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:144:31
   |
LL |         asm!("", out("v4") _, out("f4") _);
   |                  -----------  ^^^^^^^^^^^ register `f4`
   |                  |
   |                  register `v4`

error: register `f5` conflicts with register `v5`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:146:31
   |
LL |         asm!("", out("v5") _, out("f5") _);
   |                  -----------  ^^^^^^^^^^^ register `f5`
   |                  |
   |                  register `v5`

error: register `f6` conflicts with register `v6`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:148:31
   |
LL |         asm!("", out("v6") _, out("f6") _);
   |                  -----------  ^^^^^^^^^^^ register `f6`
   |                  |
   |                  register `v6`

error: register `f7` conflicts with register `v7`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:150:31
   |
LL |         asm!("", out("v7") _, out("f7") _);
   |                  -----------  ^^^^^^^^^^^ register `f7`
   |                  |
   |                  register `v7`

error: register `f8` conflicts with register `v8`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:152:31
   |
LL |         asm!("", out("v8") _, out("f8") _);
   |                  -----------  ^^^^^^^^^^^ register `f8`
   |                  |
   |                  register `v8`

error: register `f9` conflicts with register `v9`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:154:31
   |
LL |         asm!("", out("v9") _, out("f9") _);
   |                  -----------  ^^^^^^^^^^^ register `f9`
   |                  |
   |                  register `v9`

error: register `f10` conflicts with register `v10`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:156:32
   |
LL |         asm!("", out("v10") _, out("f10") _);
   |                  ------------  ^^^^^^^^^^^^ register `f10`
   |                  |
   |                  register `v10`

error: register `f11` conflicts with register `v11`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:158:32
   |
LL |         asm!("", out("v11") _, out("f11") _);
   |                  ------------  ^^^^^^^^^^^^ register `f11`
   |                  |
   |                  register `v11`

error: register `f12` conflicts with register `v12`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:160:32
   |
LL |         asm!("", out("v12") _, out("f12") _);
   |                  ------------  ^^^^^^^^^^^^ register `f12`
   |                  |
   |                  register `v12`

error: register `f13` conflicts with register `v13`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:162:32
   |
LL |         asm!("", out("v13") _, out("f13") _);
   |                  ------------  ^^^^^^^^^^^^ register `f13`
   |                  |
   |                  register `v13`

error: register `f14` conflicts with register `v14`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:164:32
   |
LL |         asm!("", out("v14") _, out("f14") _);
   |                  ------------  ^^^^^^^^^^^^ register `f14`
   |                  |
   |                  register `v14`

error: register `f15` conflicts with register `v15`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:166:32
   |
LL |         asm!("", out("v15") _, out("f15") _);
   |                  ------------  ^^^^^^^^^^^^ register `f15`
   |                  |
   |                  register `v15`

error: invalid register `f16`: unknown register
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:169:32
   |
LL |         asm!("", out("v16") _, out("f16") _);
   |                                ^^^^^^^^^^^^

error[E0658]: type `i64x2` cannot be used with this register class in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:76:27
   |
LL |         asm!("", in("v0") v); // requires vector & asm_experimental_reg
   |                           ^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: type `i64x2` cannot be used with this register class in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:80:28
   |
LL |         asm!("", out("v0") v); // requires vector & asm_experimental_reg
   |                            ^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: type `i32` cannot be used with this register class in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:84:27
   |
LL |         asm!("", in("v0") x); // requires vector & asm_experimental_reg
   |                           ^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: type `i32` cannot be used with this register class in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:88:28
   |
LL |         asm!("", out("v0") x); // requires vector & asm_experimental_reg
   |                            ^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error: type `u8` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:92:27
   |
LL |         asm!("", in("v0") b);
   |                           ^
   |
   = note: register class `vreg` supports these types: 

error: type `u8` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:97:28
   |
LL |         asm!("", out("v0") b);
   |                            ^
   |
   = note: register class `vreg` supports these types: 

error[E0658]: type `i64x2` cannot be used with this register class in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:102:35
   |
LL |         asm!("/* {} */", in(vreg) v); // requires vector & asm_experimental_reg
   |                                   ^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: type `i32` cannot be used with this register class in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:106:35
   |
LL |         asm!("/* {} */", in(vreg) x); // requires vector & asm_experimental_reg
   |                                   ^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error: type `u8` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:110:35
   |
LL |         asm!("/* {} */", in(vreg) b);
   |                                   ^
   |
   = note: register class `vreg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:122:27
   |
LL |         asm!("", in("a2") x);
   |                           ^
   |
   = note: register class `areg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:125:28
   |
LL |         asm!("", out("a2") x);
   |                            ^
   |
   = note: register class `areg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:128:35
   |
LL |         asm!("/* {} */", in(areg) x);
   |                                   ^
   |
   = note: register class `areg` supports these types: 

error: aborting due to 63 previous errors

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-21-3 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test [ui] tests/ui/zero-sized/zero-sized-btreemap-insert.rs ... ok

failures:

---- [ui] tests/ui/asm/s390x/bad-reg.rs#s390x stdout ----
Saved the actual stderr to `/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x/bad-reg.s390x.stderr`
diff of stderr:

- warning: unstable feature specified for `-Ctarget-feature`: `vector`
-    |
-    = note: this feature is not stably supported; its behavior can change in the future
---
The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args asm/s390x/bad-reg.rs`

error in revision `s390x`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/checkout/tests/ui/asm/s390x/bad-reg.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1" "--cfg" "s390x" "--check-cfg" "cfg(test,FALSE,s390x,s390x_vector,s390x_vector_stable)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "s390x-unknown-linux-gnu" "-C" "target-feature=-vector" "--extern" "minicore=/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error: invalid register `r11`: The frame pointer cannot be used as an operand for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:33:18
   |
LL |         asm!("", out("r11") _);
   |                  ^^^^^^^^^^^^

error: invalid register `r15`: The stack pointer cannot be used as an operand for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:35:18
   |
LL |         asm!("", out("r15") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c0`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:37:18
   |
LL |         asm!("", out("c0") _);
   |                  ^^^^^^^^^^^

error: invalid register `c1`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:39:18
   |
LL |         asm!("", out("c1") _);
   |                  ^^^^^^^^^^^

error: invalid register `c2`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:41:18
   |
LL |         asm!("", out("c2") _);
   |                  ^^^^^^^^^^^

error: invalid register `c3`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:43:18
   |
LL |         asm!("", out("c3") _);
   |                  ^^^^^^^^^^^

error: invalid register `c4`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:45:18
   |
LL |         asm!("", out("c4") _);
   |                  ^^^^^^^^^^^

error: invalid register `c5`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:47:18
   |
LL |         asm!("", out("c5") _);
   |                  ^^^^^^^^^^^

error: invalid register `c6`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:49:18
   |
LL |         asm!("", out("c6") _);
   |                  ^^^^^^^^^^^

error: invalid register `c7`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:51:18
   |
LL |         asm!("", out("c7") _);
   |                  ^^^^^^^^^^^

error: invalid register `c8`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:53:18
   |
LL |         asm!("", out("c8") _);
   |                  ^^^^^^^^^^^

error: invalid register `c9`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:55:18
   |
LL |         asm!("", out("c9") _);
   |                  ^^^^^^^^^^^

error: invalid register `c10`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:57:18
   |
LL |         asm!("", out("c10") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c11`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:59:18
   |
LL |         asm!("", out("c11") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c12`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:61:18
   |
LL |         asm!("", out("c12") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c13`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:63:18
   |
LL |         asm!("", out("c13") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c14`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:65:18
   |
LL |         asm!("", out("c14") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c15`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:67:18
   |
LL |         asm!("", out("c15") _);
   |                  ^^^^^^^^^^^^

error: invalid register `a0`: a0 and a1 are reserved for system use and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:69:18
   |
LL |         asm!("", out("a0") _);
   |                  ^^^^^^^^^^^

error: invalid register `a1`: a0 and a1 are reserved for system use and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:71:18
   |
LL |         asm!("", out("a1") _);
   |                  ^^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:122:18
   |
LL |         asm!("", in("a2") x);
   |                  ^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:125:18
   |
LL |         asm!("", out("a2") x);
   |                  ^^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:128:26
   |
LL |         asm!("/* {} */", in(areg) x);
   |                          ^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:131:26
   |
LL |         asm!("/* {} */", out(areg) _);
   |                          ^^^^^^^^^^^

error: register `f0` conflicts with register `v0`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:136:31
   |
LL |         asm!("", out("v0") _, out("f0") _);
   |                  -----------  ^^^^^^^^^^^ register `f0`
   |                  |
   |                  register `v0`

error: register `f1` conflicts with register `v1`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:138:31
   |
LL |         asm!("", out("v1") _, out("f1") _);
   |                  -----------  ^^^^^^^^^^^ register `f1`
   |                  |
   |                  register `v1`

error: register `f2` conflicts with register `v2`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:140:31
   |
LL |         asm!("", out("v2") _, out("f2") _);
   |                  -----------  ^^^^^^^^^^^ register `f2`
   |                  |
   |                  register `v2`

error: register `f3` conflicts with register `v3`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:142:31
   |
LL |         asm!("", out("v3") _, out("f3") _);
   |                  -----------  ^^^^^^^^^^^ register `f3`
   |                  |
   |                  register `v3`

error: register `f4` conflicts with register `v4`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:144:31
   |
LL |         asm!("", out("v4") _, out("f4") _);
   |                  -----------  ^^^^^^^^^^^ register `f4`
   |                  |
   |                  register `v4`

error: register `f5` conflicts with register `v5`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:146:31
   |
LL |         asm!("", out("v5") _, out("f5") _);
   |                  -----------  ^^^^^^^^^^^ register `f5`
   |                  |
   |                  register `v5`

error: register `f6` conflicts with register `v6`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:148:31
   |
LL |         asm!("", out("v6") _, out("f6") _);
   |                  -----------  ^^^^^^^^^^^ register `f6`
   |                  |
   |                  register `v6`

error: register `f7` conflicts with register `v7`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:150:31
   |
LL |         asm!("", out("v7") _, out("f7") _);
   |                  -----------  ^^^^^^^^^^^ register `f7`
   |                  |
   |                  register `v7`

error: register `f8` conflicts with register `v8`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:152:31
   |
LL |         asm!("", out("v8") _, out("f8") _);
   |                  -----------  ^^^^^^^^^^^ register `f8`
   |                  |
   |                  register `v8`

error: register `f9` conflicts with register `v9`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:154:31
   |
LL |         asm!("", out("v9") _, out("f9") _);
   |                  -----------  ^^^^^^^^^^^ register `f9`
   |                  |
   |                  register `v9`

error: register `f10` conflicts with register `v10`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:156:32
   |
LL |         asm!("", out("v10") _, out("f10") _);
   |                  ------------  ^^^^^^^^^^^^ register `f10`
   |                  |
   |                  register `v10`

error: register `f11` conflicts with register `v11`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:158:32
   |
LL |         asm!("", out("v11") _, out("f11") _);
   |                  ------------  ^^^^^^^^^^^^ register `f11`
   |                  |
   |                  register `v11`

error: register `f12` conflicts with register `v12`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:160:32
   |
LL |         asm!("", out("v12") _, out("f12") _);
   |                  ------------  ^^^^^^^^^^^^ register `f12`
   |                  |
   |                  register `v12`

error: register `f13` conflicts with register `v13`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:162:32
   |
LL |         asm!("", out("v13") _, out("f13") _);
   |                  ------------  ^^^^^^^^^^^^ register `f13`
   |                  |
   |                  register `v13`

error: register `f14` conflicts with register `v14`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:164:32
   |
LL |         asm!("", out("v14") _, out("f14") _);
   |                  ------------  ^^^^^^^^^^^^ register `f14`
   |                  |
   |                  register `v14`

error: register `f15` conflicts with register `v15`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:166:32
   |
LL |         asm!("", out("v15") _, out("f15") _);
   |                  ------------  ^^^^^^^^^^^^ register `f15`
   |                  |
   |                  register `v15`

error: invalid register `f16`: unknown register
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:169:32
   |
LL |         asm!("", out("v16") _, out("f16") _);
   |                                ^^^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:76:18
   |
LL |         asm!("", in("v0") v); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:80:18
   |
LL |         asm!("", out("v0") v); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:84:18
   |
LL |         asm!("", in("v0") x); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:88:18
   |
LL |         asm!("", out("v0") x); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:92:18
   |
LL |         asm!("", in("v0") b);
   |                  ^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:97:18
   |
LL |         asm!("", out("v0") b);
   |                  ^^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:102:26
   |
LL |         asm!("/* {} */", in(vreg) v); // requires vector & asm_experimental_reg
   |                          ^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:106:26
   |
LL |         asm!("/* {} */", in(vreg) x); // requires vector & asm_experimental_reg
   |                          ^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:110:26
   |
LL |         asm!("/* {} */", in(vreg) b);
   |                          ^^^^^^^^^^

error: register class `vreg` requires the `vector` target feature
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:115:26
   |
LL |         asm!("/* {} */", out(vreg) _); // requires vector & asm_experimental_reg
   |                          ^^^^^^^^^^^

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:122:27
   |
LL |         asm!("", in("a2") x);
   |                           ^
   |
   = note: register class `areg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:125:28
   |
LL |         asm!("", out("a2") x);
   |                            ^
   |
   = note: register class `areg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:128:35
   |
LL |         asm!("/* {} */", in(areg) x);
   |                                   ^
   |
   = note: register class `areg` supports these types: 

error: aborting due to 54 previous errors
------------------------------------------

---- [ui] tests/ui/asm/s390x/bad-reg.rs#s390x stdout end ----
---- [ui] tests/ui/asm/s390x/bad-reg.rs#s390x_vector stdout ----
Saved the actual stderr to `/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x_vector/bad-reg.s390x_vector.stderr`
diff of stderr:

- warning: unstable feature specified for `-Ctarget-feature`: `vector`
-    |
-    = note: this feature is not stably supported; its behavior can change in the future
---
The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args asm/s390x/bad-reg.rs`

error in revision `s390x_vector`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/checkout/tests/ui/asm/s390x/bad-reg.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1" "--cfg" "s390x_vector" "--check-cfg" "cfg(test,FALSE,s390x,s390x_vector,s390x_vector_stable)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x_vector" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "s390x-unknown-linux-gnu" "-C" "target-feature=+vector" "--extern" "minicore=/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x_vector/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error: invalid register `r11`: The frame pointer cannot be used as an operand for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:33:18
   |
LL |         asm!("", out("r11") _);
   |                  ^^^^^^^^^^^^

error: invalid register `r15`: The stack pointer cannot be used as an operand for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:35:18
   |
LL |         asm!("", out("r15") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c0`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:37:18
   |
LL |         asm!("", out("c0") _);
   |                  ^^^^^^^^^^^

error: invalid register `c1`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:39:18
   |
LL |         asm!("", out("c1") _);
   |                  ^^^^^^^^^^^

error: invalid register `c2`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:41:18
   |
LL |         asm!("", out("c2") _);
   |                  ^^^^^^^^^^^

error: invalid register `c3`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:43:18
   |
LL |         asm!("", out("c3") _);
   |                  ^^^^^^^^^^^

error: invalid register `c4`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:45:18
   |
LL |         asm!("", out("c4") _);
   |                  ^^^^^^^^^^^

error: invalid register `c5`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:47:18
   |
LL |         asm!("", out("c5") _);
   |                  ^^^^^^^^^^^

error: invalid register `c6`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:49:18
   |
LL |         asm!("", out("c6") _);
   |                  ^^^^^^^^^^^

error: invalid register `c7`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:51:18
   |
LL |         asm!("", out("c7") _);
   |                  ^^^^^^^^^^^

error: invalid register `c8`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:53:18
   |
LL |         asm!("", out("c8") _);
   |                  ^^^^^^^^^^^

error: invalid register `c9`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:55:18
   |
LL |         asm!("", out("c9") _);
   |                  ^^^^^^^^^^^

error: invalid register `c10`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:57:18
   |
LL |         asm!("", out("c10") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c11`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:59:18
   |
LL |         asm!("", out("c11") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c12`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:61:18
   |
LL |         asm!("", out("c12") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c13`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:63:18
   |
LL |         asm!("", out("c13") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c14`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:65:18
   |
LL |         asm!("", out("c14") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c15`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:67:18
   |
LL |         asm!("", out("c15") _);
   |                  ^^^^^^^^^^^^

error: invalid register `a0`: a0 and a1 are reserved for system use and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:69:18
   |
LL |         asm!("", out("a0") _);
   |                  ^^^^^^^^^^^

error: invalid register `a1`: a0 and a1 are reserved for system use and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:71:18
   |
LL |         asm!("", out("a1") _);
   |                  ^^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:122:18
   |
LL |         asm!("", in("a2") x);
   |                  ^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:125:18
   |
LL |         asm!("", out("a2") x);
   |                  ^^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:128:26
   |
LL |         asm!("/* {} */", in(areg) x);
   |                          ^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:131:26
   |
LL |         asm!("/* {} */", out(areg) _);
   |                          ^^^^^^^^^^^

error: register `f0` conflicts with register `v0`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:136:31
   |
LL |         asm!("", out("v0") _, out("f0") _);
   |                  -----------  ^^^^^^^^^^^ register `f0`
   |                  |
   |                  register `v0`

error: register `f1` conflicts with register `v1`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:138:31
   |
LL |         asm!("", out("v1") _, out("f1") _);
   |                  -----------  ^^^^^^^^^^^ register `f1`
   |                  |
   |                  register `v1`

error: register `f2` conflicts with register `v2`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:140:31
   |
LL |         asm!("", out("v2") _, out("f2") _);
   |                  -----------  ^^^^^^^^^^^ register `f2`
   |                  |
   |                  register `v2`

error: register `f3` conflicts with register `v3`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:142:31
   |
LL |         asm!("", out("v3") _, out("f3") _);
   |                  -----------  ^^^^^^^^^^^ register `f3`
   |                  |
   |                  register `v3`

error: register `f4` conflicts with register `v4`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:144:31
   |
LL |         asm!("", out("v4") _, out("f4") _);
   |                  -----------  ^^^^^^^^^^^ register `f4`
   |                  |
   |                  register `v4`

error: register `f5` conflicts with register `v5`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:146:31
   |
LL |         asm!("", out("v5") _, out("f5") _);
   |                  -----------  ^^^^^^^^^^^ register `f5`
   |                  |
   |                  register `v5`

error: register `f6` conflicts with register `v6`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:148:31
   |
LL |         asm!("", out("v6") _, out("f6") _);
   |                  -----------  ^^^^^^^^^^^ register `f6`
   |                  |
   |                  register `v6`

error: register `f7` conflicts with register `v7`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:150:31
   |
LL |         asm!("", out("v7") _, out("f7") _);
   |                  -----------  ^^^^^^^^^^^ register `f7`
   |                  |
   |                  register `v7`

error: register `f8` conflicts with register `v8`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:152:31
   |
LL |         asm!("", out("v8") _, out("f8") _);
   |                  -----------  ^^^^^^^^^^^ register `f8`
   |                  |
   |                  register `v8`

error: register `f9` conflicts with register `v9`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:154:31
   |
LL |         asm!("", out("v9") _, out("f9") _);
   |                  -----------  ^^^^^^^^^^^ register `f9`
   |                  |
   |                  register `v9`

error: register `f10` conflicts with register `v10`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:156:32
   |
LL |         asm!("", out("v10") _, out("f10") _);
   |                  ------------  ^^^^^^^^^^^^ register `f10`
   |                  |
   |                  register `v10`

error: register `f11` conflicts with register `v11`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:158:32
   |
LL |         asm!("", out("v11") _, out("f11") _);
   |                  ------------  ^^^^^^^^^^^^ register `f11`
   |                  |
   |                  register `v11`

error: register `f12` conflicts with register `v12`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:160:32
   |
LL |         asm!("", out("v12") _, out("f12") _);
   |                  ------------  ^^^^^^^^^^^^ register `f12`
   |                  |
   |                  register `v12`

error: register `f13` conflicts with register `v13`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:162:32
   |
LL |         asm!("", out("v13") _, out("f13") _);
   |                  ------------  ^^^^^^^^^^^^ register `f13`
   |                  |
   |                  register `v13`

error: register `f14` conflicts with register `v14`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:164:32
   |
LL |         asm!("", out("v14") _, out("f14") _);
   |                  ------------  ^^^^^^^^^^^^ register `f14`
   |                  |
   |                  register `v14`

error: register `f15` conflicts with register `v15`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:166:32
   |
LL |         asm!("", out("v15") _, out("f15") _);
   |                  ------------  ^^^^^^^^^^^^ register `f15`
   |                  |
   |                  register `v15`

error: invalid register `f16`: unknown register
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:169:32
   |
LL |         asm!("", out("v16") _, out("f16") _);
   |                                ^^^^^^^^^^^^

error: type `u8` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:92:27
   |
LL |         asm!("", in("v0") b);
   |                           ^
   |
   = note: register class `vreg` supports these types: i32, f32, i64, f64, i128, f128, i8x16, i16x8, i32x4, i64x2, f32x4, f64x2

error: type `u8` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:97:28
   |
LL |         asm!("", out("v0") b);
   |                            ^
   |
   = note: register class `vreg` supports these types: i32, f32, i64, f64, i128, f128, i8x16, i16x8, i32x4, i64x2, f32x4, f64x2

error: type `u8` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:110:35
   |
LL |         asm!("/* {} */", in(vreg) b);
   |                                   ^
   |
   = note: register class `vreg` supports these types: i32, f32, i64, f64, i128, f128, i8x16, i16x8, i32x4, i64x2, f32x4, f64x2

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:122:27
   |
LL |         asm!("", in("a2") x);
   |                           ^
   |
   = note: register class `areg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:125:28
   |
LL |         asm!("", out("a2") x);
   |                            ^
   |
   = note: register class `areg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:128:35
   |
LL |         asm!("/* {} */", in(areg) x);
   |                                   ^
   |
   = note: register class `areg` supports these types: 

error: aborting due to 47 previous errors
------------------------------------------

---- [ui] tests/ui/asm/s390x/bad-reg.rs#s390x_vector stdout end ----
---- [ui] tests/ui/asm/s390x/bad-reg.rs#s390x_vector_stable stdout ----
Saved the actual stderr to `/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x_vector_stable/bad-reg.s390x_vector_stable.stderr`
diff of stderr:

- warning: unstable feature specified for `-Ctarget-feature`: `vector`
-    |
-    = note: this feature is not stably supported; its behavior can change in the future
---
The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args asm/s390x/bad-reg.rs`

error in revision `s390x_vector_stable`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/checkout/tests/ui/asm/s390x/bad-reg.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1" "--cfg" "s390x_vector_stable" "--check-cfg" "cfg(test,FALSE,s390x,s390x_vector,s390x_vector_stable)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x_vector_stable" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--target" "s390x-unknown-linux-gnu" "-C" "target-feature=+vector" "--extern" "minicore=/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/asm/s390x/bad-reg.s390x_vector_stable/libminicore.rlib"
stdout: none
--- stderr -------------------------------
error: invalid register `r11`: The frame pointer cannot be used as an operand for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:33:18
   |
LL |         asm!("", out("r11") _);
   |                  ^^^^^^^^^^^^

error: invalid register `r15`: The stack pointer cannot be used as an operand for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:35:18
   |
LL |         asm!("", out("r15") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c0`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:37:18
   |
LL |         asm!("", out("c0") _);
   |                  ^^^^^^^^^^^

error: invalid register `c1`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:39:18
   |
LL |         asm!("", out("c1") _);
   |                  ^^^^^^^^^^^

error: invalid register `c2`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:41:18
   |
LL |         asm!("", out("c2") _);
   |                  ^^^^^^^^^^^

error: invalid register `c3`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:43:18
   |
LL |         asm!("", out("c3") _);
   |                  ^^^^^^^^^^^

error: invalid register `c4`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:45:18
   |
LL |         asm!("", out("c4") _);
   |                  ^^^^^^^^^^^

error: invalid register `c5`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:47:18
   |
LL |         asm!("", out("c5") _);
   |                  ^^^^^^^^^^^

error: invalid register `c6`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:49:18
   |
LL |         asm!("", out("c6") _);
   |                  ^^^^^^^^^^^

error: invalid register `c7`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:51:18
   |
LL |         asm!("", out("c7") _);
   |                  ^^^^^^^^^^^

error: invalid register `c8`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:53:18
   |
LL |         asm!("", out("c8") _);
   |                  ^^^^^^^^^^^

error: invalid register `c9`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:55:18
   |
LL |         asm!("", out("c9") _);
   |                  ^^^^^^^^^^^

error: invalid register `c10`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:57:18
   |
LL |         asm!("", out("c10") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c11`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:59:18
   |
LL |         asm!("", out("c11") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c12`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:61:18
   |
LL |         asm!("", out("c12") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c13`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:63:18
   |
LL |         asm!("", out("c13") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c14`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:65:18
   |
LL |         asm!("", out("c14") _);
   |                  ^^^^^^^^^^^^

error: invalid register `c15`: control registers are reserved by the kernel and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:67:18
   |
LL |         asm!("", out("c15") _);
   |                  ^^^^^^^^^^^^

error: invalid register `a0`: a0 and a1 are reserved for system use and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:69:18
   |
LL |         asm!("", out("a0") _);
   |                  ^^^^^^^^^^^

error: invalid register `a1`: a0 and a1 are reserved for system use and cannot be used as operands for inline asm
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:71:18
   |
LL |         asm!("", out("a1") _);
   |                  ^^^^^^^^^^^

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:76:18
   |
LL |         asm!("", in("v0") v); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:80:18
   |
LL |         asm!("", out("v0") v); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:84:18
   |
LL |         asm!("", in("v0") x); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:88:18
   |
LL |         asm!("", out("v0") x); // requires vector & asm_experimental_reg
   |                  ^^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:92:18
   |
LL |         asm!("", in("v0") b);
   |                  ^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:97:18
   |
LL |         asm!("", out("v0") b);
   |                  ^^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:102:26
   |
LL |         asm!("/* {} */", in(vreg) v); // requires vector & asm_experimental_reg
   |                          ^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:106:26
   |
LL |         asm!("/* {} */", in(vreg) x); // requires vector & asm_experimental_reg
   |                          ^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:110:26
   |
LL |         asm!("/* {} */", in(vreg) b);
   |                          ^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: register class `vreg` can only be used as a clobber in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:115:26
   |
LL |         asm!("/* {} */", out(vreg) _); // requires vector & asm_experimental_reg
   |                          ^^^^^^^^^^^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:122:18
   |
LL |         asm!("", in("a2") x);
   |                  ^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:125:18
   |
LL |         asm!("", out("a2") x);
   |                  ^^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:128:26
   |
LL |         asm!("/* {} */", in(areg) x);
   |                          ^^^^^^^^^^

error: register class `areg` can only be used as a clobber, not as an input or output
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:131:26
   |
LL |         asm!("/* {} */", out(areg) _);
   |                          ^^^^^^^^^^^

error: register `f0` conflicts with register `v0`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:136:31
   |
LL |         asm!("", out("v0") _, out("f0") _);
   |                  -----------  ^^^^^^^^^^^ register `f0`
   |                  |
   |                  register `v0`

error: register `f1` conflicts with register `v1`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:138:31
   |
LL |         asm!("", out("v1") _, out("f1") _);
   |                  -----------  ^^^^^^^^^^^ register `f1`
   |                  |
   |                  register `v1`

error: register `f2` conflicts with register `v2`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:140:31
   |
LL |         asm!("", out("v2") _, out("f2") _);
   |                  -----------  ^^^^^^^^^^^ register `f2`
   |                  |
   |                  register `v2`

error: register `f3` conflicts with register `v3`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:142:31
   |
LL |         asm!("", out("v3") _, out("f3") _);
   |                  -----------  ^^^^^^^^^^^ register `f3`
   |                  |
   |                  register `v3`

error: register `f4` conflicts with register `v4`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:144:31
   |
LL |         asm!("", out("v4") _, out("f4") _);
   |                  -----------  ^^^^^^^^^^^ register `f4`
   |                  |
   |                  register `v4`

error: register `f5` conflicts with register `v5`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:146:31
   |
LL |         asm!("", out("v5") _, out("f5") _);
   |                  -----------  ^^^^^^^^^^^ register `f5`
   |                  |
   |                  register `v5`

error: register `f6` conflicts with register `v6`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:148:31
   |
LL |         asm!("", out("v6") _, out("f6") _);
   |                  -----------  ^^^^^^^^^^^ register `f6`
   |                  |
   |                  register `v6`

error: register `f7` conflicts with register `v7`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:150:31
   |
LL |         asm!("", out("v7") _, out("f7") _);
   |                  -----------  ^^^^^^^^^^^ register `f7`
   |                  |
   |                  register `v7`

error: register `f8` conflicts with register `v8`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:152:31
   |
LL |         asm!("", out("v8") _, out("f8") _);
   |                  -----------  ^^^^^^^^^^^ register `f8`
   |                  |
   |                  register `v8`

error: register `f9` conflicts with register `v9`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:154:31
   |
LL |         asm!("", out("v9") _, out("f9") _);
   |                  -----------  ^^^^^^^^^^^ register `f9`
   |                  |
   |                  register `v9`

error: register `f10` conflicts with register `v10`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:156:32
   |
LL |         asm!("", out("v10") _, out("f10") _);
   |                  ------------  ^^^^^^^^^^^^ register `f10`
   |                  |
   |                  register `v10`

error: register `f11` conflicts with register `v11`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:158:32
   |
LL |         asm!("", out("v11") _, out("f11") _);
   |                  ------------  ^^^^^^^^^^^^ register `f11`
   |                  |
   |                  register `v11`

error: register `f12` conflicts with register `v12`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:160:32
   |
LL |         asm!("", out("v12") _, out("f12") _);
   |                  ------------  ^^^^^^^^^^^^ register `f12`
   |                  |
   |                  register `v12`

error: register `f13` conflicts with register `v13`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:162:32
   |
LL |         asm!("", out("v13") _, out("f13") _);
   |                  ------------  ^^^^^^^^^^^^ register `f13`
   |                  |
   |                  register `v13`

error: register `f14` conflicts with register `v14`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:164:32
   |
LL |         asm!("", out("v14") _, out("f14") _);
   |                  ------------  ^^^^^^^^^^^^ register `f14`
   |                  |
   |                  register `v14`

error: register `f15` conflicts with register `v15`
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:166:32
   |
LL |         asm!("", out("v15") _, out("f15") _);
   |                  ------------  ^^^^^^^^^^^^ register `f15`
   |                  |
   |                  register `v15`

error: invalid register `f16`: unknown register
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:169:32
   |
LL |         asm!("", out("v16") _, out("f16") _);
   |                                ^^^^^^^^^^^^

error[E0658]: type `i64x2` cannot be used with this register class in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:76:27
   |
LL |         asm!("", in("v0") v); // requires vector & asm_experimental_reg
   |                           ^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: type `i64x2` cannot be used with this register class in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:80:28
   |
LL |         asm!("", out("v0") v); // requires vector & asm_experimental_reg
   |                            ^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: type `i32` cannot be used with this register class in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:84:27
   |
LL |         asm!("", in("v0") x); // requires vector & asm_experimental_reg
   |                           ^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: type `i32` cannot be used with this register class in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:88:28
   |
LL |         asm!("", out("v0") x); // requires vector & asm_experimental_reg
   |                            ^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error: type `u8` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:92:27
   |
LL |         asm!("", in("v0") b);
   |                           ^
   |
   = note: register class `vreg` supports these types: 

error: type `u8` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:97:28
   |
LL |         asm!("", out("v0") b);
   |                            ^
   |
   = note: register class `vreg` supports these types: 

error[E0658]: type `i64x2` cannot be used with this register class in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:102:35
   |
LL |         asm!("/* {} */", in(vreg) v); // requires vector & asm_experimental_reg
   |                                   ^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error[E0658]: type `i32` cannot be used with this register class in stable
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:106:35
   |
LL |         asm!("/* {} */", in(vreg) x); // requires vector & asm_experimental_reg
   |                                   ^
   |
   = note: see issue #133416 <https://github.com/rust-lang/rust/issues/133416> for more information
   = help: add `#![feature(asm_experimental_reg)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error: type `u8` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:110:35
   |
LL |         asm!("/* {} */", in(vreg) b);
   |                                   ^
   |
   = note: register class `vreg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:122:27
   |
LL |         asm!("", in("a2") x);
   |                           ^
   |
   = note: register class `areg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:125:28
   |
LL |         asm!("", out("a2") x);
   |                            ^
   |
   = note: register class `areg` supports these types: 

error: type `i32` cannot be used with this register class
##[error]  --> /checkout/tests/ui/asm/s390x/bad-reg.rs:128:35
   |
LL |         asm!("/* {} */", in(areg) x);
   |                                   ^
   |
   = note: register class `areg` supports these types: 

error: aborting due to 63 previous errors

@bors
Copy link
Collaborator

bors commented Nov 6, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Nov 6, 2025
@Zalathar Zalathar closed this Nov 6, 2025
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Nov 6, 2025
@Zalathar Zalathar deleted the rollup-91vpsdi branch November 6, 2025 03:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs rollup A PR which is a rollup T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants